// 导入定义验证规则的模块
const joi = require("joi");
/**
 * string() 值必须是字符串
 * alphanum() 值只能是包含 a-zA-Z0-9 的字符串
 * min(length) 最小长度
 * max(length) 最大长度
 * required() 值是必填项，不能为 undefined
 * pattern(正则表达式) 值必须符合正则表达式的规则
 */
// 定义 标题 分类id 内容 发布状态 的校验规则
const title = joi.string().required();
const cate_id = joi.number().integer().min(1).required();
// allow('') 允许是空字符串
const content = joi.string().required().allow("");
// valid('已发布','草稿')   只允许是这两个值
const state = joi.string().valid("已发布", "草稿").required();

// 验证规则对象  - 发布文章
exports.add_article_schema = {
  body: {
    title,
    cate_id,
    content,
    state,
  },
};
const pagenum = joi.number().integer().min(1).required();
const pagesize = joi.number().integer().min(1).required();
const state1 = joi.string().valid("已发布", "草稿");
const cate_id1 = joi.number().integer().min(1);

// 验证规则对象  - 得到文章
exports.get_article_schema = {
  query: {
    pagenum,
    pagesize,
    state: state1,
    cate_id: cate_id1,
  },
};

const id = joi.number().integer().min(1).required();

// 验证规则对象  - 删除文章
exports.del_article_schema = {
  params: {
    id,
  },
};
// 验证规则对象  - 修改文章
exports.edit_article_schema = {
  body: {
    id,
    title,
  },
};
